VeraCrypt

文档 >> 技术细节 >> PIM

PIM

PIM代表“个人迭代乘数”。它是VeraCrypt 1.12版本引入的一个参数,其值控制头部密钥推导函数使用的计算参数。该值可以通过密码对话框或命令行指定。

PIM的确切含义取决于所使用的密钥推导函数(KDF):

PBKDF2-HMAC密钥推导

使用PBKDF2-HMAC时,PIM值按如下方式控制迭代次数:

Argon2id密钥推导

使用Argon2id时,PIM值同时控制内存成本和时间成本参数:

Argon2id示例:

如果未指定PIM值,VeraCrypt将对PBKDF2-HMAC使用1.12版本之前的默认参数(请参阅 头部密钥推导)。对于Argon2id,默认参数相当于PIM = 12:

在1.12版本之前,VeraCrypt卷的安全性仅基于密码强度,因为VeraCrypt使用固定的迭代次数。
随着PIM的引入,VeraCrypt卷基于(密码,PIM,密钥推导函数)组合形成多维安全空间,可在控制挂载/引导操作性能的同时更灵活地调整所需的安全级别。

PIM的使用

不强制要求指定PIM。

在创建卷或更改密码时,用户可以通过选中“使用PIM”复选框来指定PIM值,这样GUI中会显示一个PIM字段,用户可以输入PIM值。
 
PIM被视为一个秘密值,每次用户都必须与密码一起输入。如果指定了错误的PIM值,挂载/引导操作将失败。
 
使用较高的PIM值可以通过提高KDF成本参数来增强安全性,但会导致挂载/引导时间变慢。
使用较小的PIM值,挂载/引导速度会更快,但如果使用弱密码,可能会降低安全性。
 
在创建卷或对系统进行加密时,当密码长度小于20个字符时,VeraCrypt会强制PIM值大于或等于某个最小值。进行此检查是为了确保对于短密码,安全级别至少等于空PIM提供的默认级别。
 
对于短密码,Argon2id卷的PIM最小值为12,不使用SHA-512或Whirlpool的系统加密为98,其他使用PBKDF2-HMAC的情况为 485。对于长度为20个字符及以上的密码,PIM最小值为 1。在所有情况下,将PIM留空或将其值设置为0将使VeraCrypt使用如 头部密钥推导部分所述的默认KDF参数。

使用自定义PIM值的动机可能包括:

以下屏幕截图展示了使用PIM值为231挂载卷的步骤:

 

更改/清除PIM

可以使用更改密码功能来更改或清除卷或系统加密的PIM。以下屏幕截图展示了一个将PIM从空默认值更改为值为3的示例(由于密码长度超过20个字符,这是可行的)。为此,用户必须首先在“新”部分中勾选“使用PIM”复选框以显示PIM字段。

普通卷情况

 
系统加密情况

 

下一部分 >>